File Transfer Protocol (FTP) is a protocol commonly used for transferring bulk data having a comparatively large size between different data communication devices via a network.
FTP is used in accordance with Transmission Control Protocol (TCP), which is a protocol for controlling data transmission. Accordingly, a bandwidth control following TCP is executed when a bulk data transfer following FTP is executed.
When data transmission is executed in accordance with TCP, a data set to be transmitted is divided into plural data packets, and the data packets are transmitted from a data communication device at a transmission side (referred to as a “transmission side data communication device” hereinafter) to a data communication device at a receiving side (referred to as a “receiving side data communication device” hereinafter). When the receiving side data communication device receives a data packet, the receiving side data communication device transmits to the transmission side data communication device a response data set indicating acknowledgement of receipt of the data packet (referred to as an “ACK” hereinafter).
When the transmission side data communication device does not receive an ACK for a data packet within a predetermined time period after the data packet is transmitted from the transmission side data communication device, it is determined by the transmission side data communication device that the data packet is lost. The data packet that is lost is referred to as a “lost data packet” hereinafter. The transmission side data communication device calculates a data packet loss ratio that is a ratio of a number of lost data packets to a number of total transmitted data packets in a unit time. A length of time from a transmission timing of a data packet to a receiving timing of an ACK corresponding to the data packet, namely a length of time required for data to make a round trip between the transmission side data communication device and the receiving side data communication device, is generally called a Round Trip Time (RTT).
When a data packet loss ratio becomes higher than a predetermined threshold value, the transmission side data communication device determines that there is congestion on network route between the transmission side data communication device and the receiving side data communication device, and significantly decreases a data transmission rate that is a data amount transmitted in a unit time; namely, a data transmission speed. Then, the transmission side data communication device gradually increases the data transmission rate. By the above explained control of data transmission rate, namely a bandwidth control, serious network congestion is avoided.
There may be several reasons for data packet loss other than network congestion, such as noise in a wireless network. For example, a data packet may be considered as a lost data packet when it takes too long time for an ACK to reach a transmission side data communication device because a receiving side data communication device is located far away from the transmission side data communication device in a network.
Loss of data packets caused by reasons other than network congestion cannot be solved by decreasing a data transmission rate. Accordingly, when a data packet loss ratio is increased by loss of packets caused by any reason other than network congestion, decrease of a data transmission rate brings no merit. However, when data is transferred by use of FTP in accordance with TCP, a data transmission rate is decreased even when a data packet loss ratio is increased for a reason other than network congestion, and use of some bands for data transmission may be stopped unnecessarily.
Some solutions for the above explained problem of FTP are proposed.
For example, JP2001-160824A discloses a system that can decrease a data packet loss ratio effectively. In the system disclosed in JP2001-160824A, when a data packet loss ratio is higher than a threshold value because of data transmission errors, data is transmitted by data packets with a shorter packet length than usual; and when a data packet loss ratio is higher than a threshold value because of late arrivals of ACKs and an RTT is longer than a threshold value, a data transmission rate is decreased.
For example, JP2004-193991A discloses a system that can properly adjust a data transmission rate in response to changes in network conditions. In the system disclosed in JP2004-193991A, when an RTT is changing with a decreasing trend, a data transmission rate is increased; when an RTT is changing with an increasing trend, a data transmission rate is decreased; when a data packet loss ratio is lower than a threshold value and the data packet loss ratio is unstable, a data transmission rate is increased; and when a data packet loss ratio is higher than a threshold value and the data packet loss ratio is unstable, a data transmission rate is decreased.
Further, for example, JP2009-207084A discloses a system by which streaming data can always be distributed at an encode rate that is as high as possible. In the system disclosed in JP2009-207084A, when an encode rate increases in response to an increase in a data transmission rate, the data transmission rate is further increased; when an encode rate decreases in response to an increase in a data transmission rate, the data transmission rate is decreased; when an encode rate increases in response to a decrease in a data transmission rate, the data transmission rate is further decreased; and when an encode rate decreases in response to a decrease of a data transmission rate, the data transmission rate is increased.
According to the system disclosed in JP2001-160824A, data packet losses caused by data transmission errors may be appropriately decreased, but data packet losses caused by late arrivals of ACKs cannot be appropriately decreased. Accordingly, according to the system disclosed by JP2001-160824A, when a receiving side data communication device is located far away from a transmission side data communication device, a performance of data transmission between the data communication devices may become unsatisfactory.
According to the system disclosed in JP2004-193991A, when an RTT is stable or a data packet loss ratio is stable, a data transmission rate is not changed. Accordingly, for example, when a low data transmission rate is set in a situation where the network has no congestion, the low data transmission rate may be maintained, and an efficient performance of data transmission may not be provided.
According to the system disclosed in JP2009-207084A, a high data transmission rate may be maintained for data transmission between a transmission side data communication device and a receiving side data communication device regardless of existence of network congestion, which may cause poor performance of data transmissions among other data communication devices in the network.